package model.alumnos;

public abstract class EstadoDeAlumno {
	
	private AlumnoEnCarrera alumno;
	private int ausentes;
	private int materiasEnUltimoAnio;
	
	//CONSTRUCTOR:

	public EstadoDeAlumno(AlumnoEnCarrera alumno){
		super();
		this.alumno = alumno;
		this.ausentes = 0;
		this.materiasEnUltimoAnio = 0;
	}
	
	//--------------------------------------------------------------------
	
	
	public void agregarAusente(){
		this.ausentes++;
	}
	
	
	/**
	 * Le cambia el estado al alumno de acuerdo al estado pasado por parametro
	 *
	 */
	public void cambiarEstado(EstadoDeAlumno estado){
		this.getAlumno().setEstado(estado);
	}
	
	public void regularizar() {
		this.getAlumno().setEstado(new Regular(this.getAlumno()));
	}

	public void otorgarLicencia() {
		if(this.getAlumno().getCantidadDeLicenciasPedidas() < 6){
			this.getAlumno().setEstado(new Licencia(this.getAlumno()));		
			this.getAlumno().setCantidadDeLicenciasPedidas(this.getAlumno().getCantidadDeLicenciasPedidas() + 1);
		}
	}
	
	//GETTERS Y SETTERS:
	
	public boolean isRegular(){
		return false;
	}

	public int getAusentes() {
		return ausentes;
	}

	public void setAusentes(int ausentes) {
		this.ausentes = ausentes;
	}

	public int getMateriasEnUltimoAnio() {
		return materiasEnUltimoAnio;
	}

	public void setMateriasEnUltimoAnio(int materiasEnUltimoAnio) {
		this.materiasEnUltimoAnio = materiasEnUltimoAnio;
	}
	
	public AlumnoEnCarrera getAlumno() {
		return alumno;
	}
	
	public void setAlumno(AlumnoEnCarrera alumno) {
		this.alumno = alumno;
	}	
}
